/*
TwoNumberSum.in 文件里包含两行：
* 第一行表示一个 target number
* 第二行包含若干数字，用这些数字组成一个数组 array

如果 array 里，存在任意两个数字相加等于 target，那么就返回这两个数字，否则返回 {-1, -1}。
并把返回的两个数字，写到 TwoNumberSum.out 里，并用空格分开。
*/
#include <fstream>
#include <vector>
#include <algorithm> // C++ 的所有标准算法
#include <iostream>

using namespace std;

// 3 5 -4 8 11 1 -2 6
// ^                   ^
// -4 -2 1 3 5 6 8 11
// ^l
//                 ^r
// sum = *l + *r = 7
// sum < target

int main(int argc, char const *argv[])
{
  /* code */
  ifstream ifs("TwoNumberSum.in");
  vector<int> numbers;

  // eof() - End Of File
  // true: 读到末尾了
  while (!ifs.eof()) {
    int n = 0;
    ifs >> n;
    numbers.push_back(n);
  }
  
  sort(numbers.begin(), numbers.end());

  vector<int>::iterator l = numbers.begin();
  vector<int>::iterator r = numbers.end() - 1;

  int sum = *l + *r;


  /*
  TODO:
  我们计算得到初始的 sum 之后:
  * 如果 sum > target，说明和大了，我们就把 l 往右移动一个位置；
  * 如果 sum == target，说明找到了结果，我们返回 {*l, *r}；
  * 如果 sum < target，说明和小了，我们就把 r 往左移动一个位置；
  * 
  直到 l == r，表示我们已经找过了所有位置，没有相加可以得到 target
  的两个数字，则返回 {-1, -1}。
  */

  return 0;
}
